﻿using System.Runtime.Serialization;

namespace RockBus.DataContracts
{
    [DataContract(Namespace = StringConstants.RockBusNamespace)]
    public enum MessageDirectionEnum : int
    {
        /// <summary>
        /// Specifies a received message.
        /// </summary>
        [EnumMember]
        Received,

        /// <summary>
        /// Specifies an incoming request.
        /// </summary>
        [EnumMember]
        InboundRequest,

        /// <summary>
        /// Specifies an outgoing request.
        /// </summary>
        [EnumMember]
        OutboundRequest,

        /// <summary>
        /// Specifies an incoming response.
        /// </summary>
        [EnumMember]
        InboundResponse,

        /// <summary>
        /// Specifies an outgoing response.
        /// </summary>
        [EnumMember]
        OutboundResponse,

        /// <summary>
        /// Specifies the message has finished processing.
        /// </summary>
        [EnumMember]
        End,
    }

    //[DataContract(Namespace = StringConstants.RockBusNamespace)]
    //public enum ProcessingStepEnum
    //{
    //    [EnumMember]
    //    ReceivePort,
    //    [EnumMember]
    //    SubscriptionEvaluator,
    //    [EnumMember]
    //    SubscriptionNormalizer,
    //    [EnumMember]
    //    PersistenceSendPort,
    //    [EnumMember]
    //    DeliverySendPort,
    //    [EnumMember]
    //    CorrelationManager,
    //}
}